<?php

// OK.
sem_get( $key, $max_acquire, $perm, );
sem_get($SHM_KEY, 1024, 0644 | IPC_CREAT);
\sem_get( $SEMKey, 2, 0666, true);
sem_get( $SEMKey, 2, 0666, false);
ob_implicit_flush();
ob_implicit_flush(true);

// Ignore as undetermined.
sem_get( $key, $max_acquire, $perm, $auto_release );
\sem_get( $key, $max_acquire, $perm, SEMVER_RELEASE );
SEM_get( $key, $max_acquire, $perm, self::RELEASE_TOGGLE );
ob_implicit_flush($flag);

// Ignore for complexity + could be valid cross-version toggle.
sem_get( $key, $max_acquire, $perm, $test ? 1 : true );

// Error.
sem_get( $key, $max_acquire, $perm, 0 );
sem_get( $key, $max_acquire, $perm, 1 );
\sem_get( $key, $max_acquire, $perm, -1 );
Sem_Get( $key, $max_acquire, $perm, 0 );
sem_get( $key, $max_acquire, $perm, 1.0 );
sem_get( $key, auto_release: 1 * 1);
ob_implicit_flush(0);
\ob_implicit_flush(enable: 1);

// Safeguard against false positives on method calls and namespaced function calls.
ClassName::sem_get( $key, $max_acquire, $perm, 0 );
$obj->ob_implicit_flush(0);
$obj?->sem_get( $key, $max_acquire, $perm, 0 );
namespace\ob_implicit_flush(0);
\Fully\Qualified\sem_get( $key, $max_acquire, $perm, 0 );
Partially\Qualified\ob_implicit_flush(0);

// PHP 8.5.
gzfile($filename, true); // OK.
gzopen($filename, $mode, true); // OK.
readgzfile($filename, true); // OK.
gzfile($filename, 1); // Error.
gzopen($filename, $mode, 0); // Error.
readgzfile($filename, 1); // Error.
